home *** CD-ROM | disk | FTP | other *** search
-
-
-
- ____GGGGEEEEMMMMMMMM((((3333FFFF)))) ____GGGGEEEEMMMMMMMM((((3333FFFF))))
-
-
-
- NNNNAAAAMMMMEEEE
- dgemm, sgemm, zgemm, cgemm - BLAS level three Matrix Product
-
-
- FFFFOOOORRRRTTTTRRRRAAAANNNN 77777777 SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ddddggggeeeemmmmmmmm(((( ttttrrrraaaannnnssssaaaa,,,,ttttrrrraaaannnnssssbbbb,,,,mmmm,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
- cccchhhhaaaarrrraaaacccctttteeeerrrr****1111 ttttrrrraaaannnnssssaaaa,,,, ttttrrrraaaannnnssssbbbb
- iiiinnnntttteeeeggggeeeerrrr mmmm,,,, nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc
- ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
- ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb((((llllddddbbbb,,,,****)))),,,, cccc((((llllddddcccc,,,,****))))
-
- ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ssssggggeeeemmmmmmmm(((( ttttrrrraaaannnnssssaaaa,,,,ttttrrrraaaannnnssssbbbb,,,,mmmm,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
- cccchhhhaaaarrrraaaacccctttteeeerrrr****1111 ttttrrrraaaannnnssssaaaa,,,, ttttrrrraaaannnnssssbbbb
- iiiinnnntttteeeeggggeeeerrrr mmmm,,,, nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc
- rrrreeeeaaaallll aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
- rrrreeeeaaaallll aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb((((llllddddbbbb,,,,****)))),,,, cccc((((llllddddcccc,,,,****))))
-
- ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee zzzzggggeeeemmmmmmmm(((( ttttrrrraaaannnnssssaaaa,,,,ttttrrrraaaannnnssssbbbb,,,,mmmm,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
- cccchhhhaaaarrrraaaacccctttteeeerrrr****1111 ttttrrrraaaannnnssssaaaa,,,, ttttrrrraaaannnnssssbbbb
- iiiinnnntttteeeeggggeeeerrrr mmmm,,,, nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc
- ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
- ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb((((llllddddbbbb,,,,****)))),,,, cccc((((llllddddcccc,,,,****))))
-
- ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ccccggggeeeemmmmmmmm(((( ttttrrrraaaannnnssssaaaa,,,,ttttrrrraaaannnnssssbbbb,,,,mmmm,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
- cccchhhhaaaarrrraaaacccctttteeeerrrr****1111 ttttrrrraaaannnnssssaaaa,,,, ttttrrrraaaannnnssssbbbb
- iiiinnnntttteeeeggggeeeerrrr mmmm,,,, nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc
- ccccoooommmmpppplllleeeexxxx aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
- ccccoooommmmpppplllleeeexxxx aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb((((llllddddbbbb,,,,****)))),,,, cccc((((llllddddcccc,,,,****))))
-
-
- CCCC SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- vvvvooooiiiidddd ddddggggeeeemmmmmmmm(((( ttttrrrraaaannnnssssaaaa,,,,ttttrrrraaaannnnssssbbbb,,,,mmmm,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
- MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee ttttrrrraaaannnnssssaaaa,,,, ttttrrrraaaannnnssssbbbb;;;;
- IIIInnnntttteeeeggggeeeerrrr mmmm,,,, nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc;;;;
- ddddoooouuuubbbblllleeee aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
- ddddoooouuuubbbblllleeee ((((****aaaa))))[[[[llllddddaaaa****kkkkaaaa]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****nnnn]]]],,,, ((((****cccc))))[[[[llllddddaaaa****kkkkbbbb]]]];;;;
-
- vvvvooooiiiidddd ssssggggeeeemmmmmmmm(((( ttttrrrraaaannnnssssaaaa,,,,ttttrrrraaaannnnssssbbbb,,,,mmmm,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
- MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee ttttrrrraaaannnnssssaaaa,,,, ttttrrrraaaannnnssssbbbb;;;;
- IIIInnnntttteeeeggggeeeerrrr mmmm,,,, nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc;;;;
- ffffllllooooaaaatttt aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
- ffffllllooooaaaatttt ((((****aaaa))))[[[[llllddddaaaa****kkkkaaaa]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****nnnn]]]],,,, ((((****cccc))))[[[[llllddddaaaa****kkkkbbbb]]]];;;;
-
- vvvvooooiiiidddd zzzzggggeeeemmmmmmmm(((( ttttrrrraaaannnnssssaaaa,,,,ttttrrrraaaannnnssssbbbb,,,,mmmm,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
- MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee ttttrrrraaaannnnssssaaaa,,,, ttttrrrraaaannnnssssbbbb;;;;
- IIIInnnntttteeeeggggeeeerrrr mmmm,,,, nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc;;;;
- ZZZZoooommmmpppplllleeeexxxx aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
- ZZZZoooommmmpppplllleeeexxxx ((((****aaaa))))[[[[llllddddaaaa****kkkkaaaa]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****nnnn]]]],,,, ((((****cccc))))[[[[llllddddaaaa****kkkkbbbb]]]];;;;
-
- vvvvooooiiiidddd ccccggggeeeemmmmmmmm(((( ttttrrrraaaannnnssssaaaa,,,,ttttrrrraaaannnnssssbbbb,,,,mmmm,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
- MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee ttttrrrraaaannnnssssaaaa,,,, ttttrrrraaaannnnssssbbbb;;;;
- IIIInnnntttteeeeggggeeeerrrr mmmm,,,, nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc;;;;
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- ____GGGGEEEEMMMMMMMM((((3333FFFF)))) ____GGGGEEEEMMMMMMMM((((3333FFFF))))
-
-
-
- CCCCoooommmmpppplllleeeexxxx aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
- CCCCoooommmmpppplllleeeexxxx ((((****aaaa))))[[[[llllddddaaaa****kkkkaaaa]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****nnnn]]]],,,, ((((****cccc))))[[[[llllddddaaaa****kkkkbbbb]]]];;;;
-
-
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- ddddggggeeeemmmmmmmm, ssssggggeeeemmmmmmmm, zzzzggggeeeemmmmmmmm and ccccggggeeeemmmmmmmm perform one of the matrix-matrix operations
-
- C := alpha*op( A )*op( B ) + beta*C,
-
- where op( X ) is one of
-
- op( X ) = X or op( X ) = X',
-
- alpha and beta are scalars, and A, B and C are matrices, with op( A ) an
- m by k matrix, op( B ) a k by n matrix and C an m by n matrix.
-
-
- PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
- ttttrrrraaaannnnssssaaaa On entry, ttttrrrraaaannnnssssaaaa specifies the form of op( A ) to be used in the
- matrix multiplication as follows:
-
- FFFFOOOORRRRTTTTRRRRAAAANNNN
- transa = 'N' or 'n', op( A ) = A.
- transa = 'T' or 't', op( A ) = A'.
- transa = 'C' or 'c', op( A ) = conjg( A').
-
- CCCC
- transa = NoTranspose op( A ) = A.
- transa = Transpose op( A ) = A'.
- transa = ConjugateTranspose op( A ) = conjg( A').
-
- Unchanged on exit.
-
- ttttrrrraaaannnnssssbbbb On entry, ttttrrrraaaannnnssssbbbb specifies the form of op( B ) to be used in the
- matrix multiplication as follows:
-
- FFFFOOOORRRRTTTTRRRRAAAANNNN
- transb = 'N' or 'n', op( B ) = B.
- transb = 'T' or 't', op( B ) = B'.
- transb = 'C' or 'c', op( B ) = conjg( B' ).
-
- CCCC
- transb = NoTranspose op( B ) = B.
- transb = Transpose op( B ) = B'.
- transb = ConjugateTranspose op( B ) = conjg( B' ).
-
- Unchanged on exit.
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- ____GGGGEEEEMMMMMMMM((((3333FFFF)))) ____GGGGEEEEMMMMMMMM((((3333FFFF))))
-
-
-
- mmmm On entry, mmmm specifies the number of rows of the matrix op( A )
- and of the matrix C. mmmm must be at least zero.
- Unchanged on exit.
-
- nnnn On entry, nnnn specifies the number of columns of the matrix op( B )
- and the number of columns of the matrix C. nnnn must be at least
- zero.
- Unchanged on exit.
-
- kkkk On entry, kkkk specifies the number of columns of the matrix op( A )
- and the number of rows of the matrix op( B ). kkkk must be at least
- zero.
- Unchanged on exit.
-
- aaaallllpppphhhhaaaa On entry, aaaallllpppphhhhaaaa specifies the scalar alpha.
- Unchanged on exit.
-
- aaaa An array containing the matrix A.
-
- FFFFOOOORRRRTTTTRRRRAAAANNNN
- Array of dimension ( lda, ka ).
-
- CCCC
- A pointer to an array of size lda*ka.
- See note below about array storage convention for C.
-
- kkkkaaaa is kkkk when transa = 'N' or 'n' or NoTranspose and is mmmm
- otherwise. Before entry with transa = 'N' or 'n' or NoTranspose,
- the leading m by k part of the array aaaa must contain the matrix A,
- otherwise the leading k by m part of the array aaaa must contain
- the matrix A.
-
- Unchanged on exit.
-
- llllddddaaaa On entry, llllddddaaaa specifies the first dimension of aaaa as declared in
- the calling (sub) program. When transa = 'N' or 'n' or
- NoTranspose, then lda must be at least max( 1, m ), otherwise lda
- must be at least max( 1, k ).
- Unchanged on exit.
-
- bbbb An array containing the matrix B.
-
- FFFFOOOORRRRTTTTRRRRAAAANNNN
- An array of dimension ( ldb, kb ).
-
- CCCC
- A pointer to an array of size ldb*kb.
- See note below about array storage convention for C.
-
- kkkkbbbb is nnnn when transb = 'N' or 'n' or NoTranspose, and is k
- otherwise. Before entry with transb = 'N' or 'n' or NoTranspose,
- the leading k by n part of the array bbbb must contain the matrix B,
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- ____GGGGEEEEMMMMMMMM((((3333FFFF)))) ____GGGGEEEEMMMMMMMM((((3333FFFF))))
-
-
-
- otherwise the leading n by k part of the array bbbb must contain the
- matrix B.
-
- Unchanged on exit.
-
- llllddddbbbb On entry, llllddddbbbb specifies the first dimension of bbbb as declared in
- the calling (sub)program. When transb = 'N' or 'n' or
- NoTranspose then ldb must be at least max( 1, k ), otherwise ldb
- must be at least max( 1, n ).
- Unchanged on exit.
-
- bbbbeeeettttaaaa On entry, bbbbeeeettttaaaa specifies the scalar beta. When bbbbeeeettttaaaa is supplied
- as zero then cccc need not be set on input.
- Unchanged on exit.
-
- cccc An array containing the matrix C.
-
- FFFFOOOORRRRTTTTRRRRAAAANNNN
- An array of dimension ( ldc, n ).
-
- CCCC
- A pointer to an array of size ldc*n.
- See note below about array storage convention for C.
-
- Before entry, the leading m by n part of the array cccc must contain
- the matrix C, except when beta is zero, in which case cccc need not
- be set on entry.
-
- On exit, the array cccc is overwritten by the m by n matrix
-
- ( alpha*op( A )*op( B ) + beta*C ).
-
- llllddddcccc On entry, llllddddcccc specifies the first dimension of cccc as declared in
- the calling (sub) program. llllddddcccc must be at least max( 1, m ).
- Unchanged on exit.
-
-
- CCCC AAAARRRRRRRRAAAAYYYY SSSSTTTTOOOORRRRAAAAGGGGEEEE CCCCOOOONNNNVVVVEEEENNNNTTTTIIIIOOOONNNN
- The matrices are assumed to be stored in a oooonnnneeee ddddiiiimmmmeeeennnnssssiiiioooonnnnaaaallll CCCC aaaarrrrrrrraaaayyyy
- in an analogous fashion as a Fortran array (column major). Therefore,
- the element A(i+1,j) of matrix A is stored immediately after the
- element A(i,j), while A(i,j+1) is lda elements apart from A(i,j).
- The element A(i,j) of the matrix can be accessed directly by reference
- to a[ (j-1)*lda + (i-1) ].
-
-
- AAAAUUUUTTTTHHHHOOOORRRRSSSS
- Jack Dongarra, Argonne National Laboratory.
- Iain Duff, AERE Harwell.
- Jeremy Du Croz, Numerical Algorithms Group Ltd.
- Sven Hammarling, Numerical Algorithms Group Ltd.
-
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-
-
-
- ____GGGGEEEEMMMMMMMM((((3333FFFF)))) ____GGGGEEEEMMMMMMMM((((3333FFFF))))
-
-
-
- TTTTUUUUNNNNIIIINNNNGGGG
- Optimized and parallelized for SGI R3000, R4x00 and R8000 platforms.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 5555
-
-
-
-